from django.core.exceptions import ValidationError


# 校验密码两次一样不
class ValidatePassword:

    def __call__(self, value):
        """
                校验密码强度
                :param value: 字段的值
                """
        # 校验密码长度
        if  value is None or value == '':
            raise ValidationError("请输入正确的密码")
        if len(value) < 8:
            raise ValidationError("密码必须至少包含 8 个字符")
        # 校验密码复杂度
        if not any(char.isupper() for char in value):
            raise ValidationError("密码必须包含至少一个大写字母")
        if not any(char.islower() for char in value):
            raise ValidationError("密码必须包含至少一个小写字母")
        if not any(char.isdigit() for char in value):
            raise ValidationError("密码必须包含至少一个数字")
